#!/bin/bash
#1 获取输入参数个数，如果没有参数，直接退出
FILE_COUNT=$#
if((FILE_COUNT==0)); then
    echo ">>> 错误：未传递文件参数！"
    echo "  时间及日期用法：time_syn \"2007-08-03 14:15:00\""
    echo "  日期用法：time_syn \"date -s 2007-08-03\""
    echo "  时间用法：time_syn \"date -s 14:15:00\""
    exit;
fi
# （0）修改时区
#/usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 合局变量
NEW_DATE=$1

echo ">>> 原时间：`date '+%Y-%m-%d %H-%M-%S'`"

# （1）本机修改时间
sudo date -s "$NEW_DATE"

echo "<<< 现时间：`date '+%Y-%m-%d %H-%M-%S'`"

#把系统时间写入CMOS
# clock -w

# （2）hosts中所有主机同步时间
#>>>>>>>>>>>>>>>>>>>>>> 取hosts中主机开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>
SELF_HOST_NAME=$(hostname)
#IFS设置IFS环境变量，这个变量是用来定义分隔符类型的。默认的分隔符为空格、换行符、tab。
IFS_old=$IFS
IFS=$'\n'
for host in `grep -v localhost /etc/hosts | awk '{print($2)}'`; do
    # $item  如：192.168.56.101 mini1
    if [ "$host" != "$SELF_HOST_NAME" ]; then
        ssh -t $i "sudo date -s $NEW_DATE;clock -w"
        # echo ""
    # else
        # echo "<<< 本机无需同步：$host"
    fi
done
#将IFS变量还原为默认值
IFS=$IFS_old
#>>>>>>>>>>>>>>>>>>>>>> 取hosts中主机结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>


